1
2
3
4
5
6
7 package org.thema.scriptware.controller;
8
9 import java.io.*;
10 import java.util.HashMap;
11
12 import javax.servlet.*;
13 import javax.servlet.http.*;
14 import org.thema.scriptware.digester.DigesterPlugin;
15
16 /***
17 *
18 * @author Eduardo M . Sasso
19 * @version
20 */
21 public class PluginServlet extends HttpServlet {
22
23 /*** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
24 * @param request servlet request
25 * @param response servlet response
26 */
27 protected void processRequest(HttpServletRequest request, HttpServletResponse response)
28 throws ServletException, IOException {
29 HttpSession session = request.getSession();
30
31 ServletContext servletContext = this.getServletContext();
32 InputStream inputStream = servletContext.getResourceAsStream("META-INF/plugins.xml");
33 if (inputStream == null) {
34 throw new IOException("arquivo META-INF/plugins.xml não foi encontrado!");
35 }
36 DigesterPlugin digesterPlugin = new DigesterPlugin(inputStream);
37
38 try {
39 digesterPlugin.digest();
40 } catch (IOException e) {
41 throw new IOException(e.getMessage());
42 } catch (org.xml.sax.SAXException ex) {
43 throw new ServletException(ex.getMessage());
44 }
45 HashMap hashMap = (HashMap)digesterPlugin.getPlugins();
46
47 session.setAttribute("plugins", hashMap);
48 request.setAttribute("plugins", hashMap.values());
49
50 RequestDispatcher dispatcher = request.getRequestDispatcher("plugins.jsp");
51 dispatcher.forward(request,response);
52 }
53
54
55 /*** Handles the HTTP <code>GET</code> method.
56 * @param request servlet request
57 * @param response servlet response
58 */
59 protected void doGet(HttpServletRequest request, HttpServletResponse response)
60 throws ServletException, IOException {
61 processRequest(request, response);
62 }
63
64 /*** Handles the HTTP <code>POST</code> method.
65 * @param request servlet request
66 * @param response servlet response
67 */
68 protected void doPost(HttpServletRequest request, HttpServletResponse response)
69 throws ServletException, IOException {
70 processRequest(request, response);
71 }
72
73 /*** Returns a short description of the servlet.
74 */
75 public String getServletInfo() {
76 return "Short description";
77 }
78
79 }